package com.owen.java.demo.tail;

import org.apache.commons.io.input.Tailer;
import org.apache.commons.io.input.TailerListener;

import java.io.File;
import java.time.Duration;

/**
 * 文件每行会被读取两遍，暂没找到问题
 */
public class Tail {

    public static void main(String[] args) {
        File file=new File("d:\\test.txt");
        TailerListener listener=new TailerListener() {
            @Override
            public void fileNotFound() {
                // 文件未找到时的处理逻辑
            }

            @Override
            public void fileRotated() {
                // 文件轮换时的处理逻辑
                System.out.println("文件rotated");
            }

            @Override
            public void handle(Exception ex) {
                // 读取异常后的处理逻辑
            }

            @Override
            public void handle(String line) {
                // 处理新读取的行
                System.out.println(line);
            }

            @Override
            public void init(Tailer tailer) {

            }
        };

        Tailer tailer=Tailer.builder()
                .setFile(file)
                .setTailerListener(listener)
                .setDelayDuration(Duration.ofSeconds(1))
                .get();

//        tailer.run();

        Thread thread=new Thread(tailer);
//        thread.setDaemon(true);
        thread.start();
    }

}
